package com.warningrc.system;

import java.text.MessageFormat;

import com.warningrc.system.i18n.Languages;


/**
 * 定义项目中用到的一些常量
 * 
 * @author <a href="http://weibo.com/weibowarning">王宁</a>
 * @date 2011-12-29
 * @email <a
 *        href="mailto:childe.wangning@gmail.com">childe.wangning@gmail.com</a>
 */
public final class Constants {
	private Constants() {
	}

	/**
	 * 系统是否处于开发模式
	 */
	public static final boolean DEBUG = true;

	// ******************************************//
	// *******************HTTP*******************//
	// ******************************************//
	/**
	 * 代表Http Method,有些浏览器不支持'delete','put'等Http
	 * Method,可以使用__http_method=delet来代替
	 */
	public static final String HTTP_METHOD_PARAM = "__http_method";
	/**
	 * HTTP header referer
	 */
	public static final String HTTP_HEADER_REFERER = "referer";

	// ******************************************//
	// *******************REST*******************//
	// ******************************************//
	/**
	 * Rest中index调用的方法名称
	 */
	public static final String REST_ACTION_METHOD_INDEX = "rest.action.method.index";
	/**
	 * Rest中get调用的方法名称
	 */
	public static final String REST_ACTION_METHOD_GET = "rest.action.method.get";
	/**
	 * Rest中post调用的方法名称
	 */
	public static final String REST_ACTION_METHOD_POST = "rest.action.method.post";
	/**
	 * Rest中put调用的方法名称
	 */
	public static final String REST_ACTION_METHOD_PUT = "rest.action.method.put";
	/**
	 * Rest中delete调用的方法名称
	 * 
	 */
	public static final String REST_ACTION_METHOD_DELETE = "rest.action.method.delete";
	/**
	 * Rest Url匹配表达式
	 */
	public static final String REST_ACTION_URLPATTERN = "rest.action.urlPattern";

	// ******************************************//
	// ****************国际化信息****************//
	// ******************************************//
	/**
	 * 系统所支持语言环境的资源文件
	 */
	public static final String I18N_LANGUAGE_RESOURCE = "config/i18n/language";
	/**
	 * 系统所支持的语言环境列表
	 */
	public static final String I18N_LANGUAGES = "warning.language";
	/**
	 * 系统默认的语言环境
	 */
	public static final String I18N_LANGUAGE_DEFAULT = "warning.language.default";
	/**
	 * 系统所支持的语言环境对应的显示文字
	 */
	public static final String I18N_LANGUAGE_TEXT = "warning.language.{0}";
	/**
	 * 系统所支持的语言环境对应的语言_国家/地区代码
	 */
	public static final String I18N_LANGUAGE_LOCALE = "warning.language.{0}.locale";

	/**
	 * 获取 {@link com.warningrc.system.i18n.Languages Languages} 实例
	 * <p/>
	 * 
	 * @see com.warningrc.system.i18n.Languages#getInstance() Languages.getInstance()
	 * @return
	 */
	public static final Languages getLanguages() {
		return Languages.getInstance();
	}

	/**
	 * 默认语言环境和(\\d)模式的<code>java.text.MessageFormat</code>对象<br>
	 * 用于格式化类似"my name is {0}, I'm {1} years old"的字符串
	 */
	public static final MessageFormat MESSAGEFORMAT = new MessageFormat("(\\d)");

	// **********************************************//
	// *******************用户信息*******************//
	// **********************************************//
	/**
	 * 用于记录用户登陆过的信息
	 */
	public static final String USER_LOGINED_MESSAGE = "__user_logined_message__";
}
